// 引入公用的自定义函数
var $ = require('../../../utils/js.js');
var img_gy_src = $.img_gy_src;

Page({
  // 页面的初始数据
  data: {
    // 图片路径的公用部分
    img_gy_src: img_gy_src,
    // 获取到的我的名片数据
    name_card_data: "",
    // nav中的数据
    nav_data: [{
      src: img_gy_src + "/my/my_name_card/ren_qi.png",
      title: "人气:",
      num: 0,
      url: "/pages/my/ren_qi/ren_qi",
    }, {
      src: img_gy_src + "/my/my_name_card/dian_zan.png",
      title: "点赞:",
      num: 0,
      url: "/pages/my/dian_zan/dian_zan",
    }, {
      src: img_gy_src + "/my/my_name_card/si_xin.png",
      title: "私信:",
      num: 0,
      url: "/pages/my/liao_tian_list/liao_tian_list",
    }, {
      src: img_gy_src + "/my/my_name_card/guan_zhu.png",
      title: "关注:",
      num: 0,
      url: "/pages/my/guan_zhu/guan_zhu",
    }],
    content_data: [{
      title: "发布动态",
      url: "/pages/index/fabu/fabu",
      src: img_gy_src + "/my/my_name_card/fbdt.png",
    }, {
      title: "编辑名片",
      url: "/pages/my/wan_shan_ming_pian/wan_shan_ming_pian",
      src: img_gy_src + "/my/my_name_card/bjmp.png",
    }, {
      title: "我的店铺",
      url: "/pages/my/my_shop/my_shop?back=1",
      src: img_gy_src + "/my/my_name_card/wddp.png",
    }, {
      title: "名片排行",
      url: "/pages/index/name_card_list/name_card_list",
      src: img_gy_src + "/my/my_name_card/mpph.png",
    }, {
      title: "店铺街",
      url: "/pages/business/business",
      src: img_gy_src + "/my/my_name_card/dpj.png",
      switchTab: true,
    }, {
      title: "热门动态",
      url: "/pages/index/index",
      src: img_gy_src + "/my/my_name_card/rmdt.png",
      switchTab: true,
    }],
    // 获取到的小程序码
    xcxm: "",
    // 下载下来的名片头像
    tou_xiang: "",
    // 生成的名片路径
    name_card_img: "",

    // 是否刷新名片数据
    shua_xin: false,
  },
  // 生命周期函数--监听页面加载
  onLoad: function(options) {
    if (getApp().data.hide) {
      var content_data = this.data.content_data;
      content_data.splice(0, 1);
      this.setData({
        content_data: content_data
      })
    }
    // 获取用户信息
    this.get_user_data();
    this.setData({
      back: options.back ? options.back : ""
    })
  },
  // 生命周期函数--监听页面初次渲染完成
  onReady: function() {

  },
  // 生命周期函数--监听页面显示
  onShow: function() {
    if (this.data.shua_xin) {
      // 获取用户信息
      this.get_user_data();
    } else {
      this.setData({
        shua_xin: true
      })
    }
  },
  // 自定义函数   开始
  // 获取用户信息
  get_user_data() {
    $.get_user_data((res) => {
      console.log("用户信息", res);
      if (res == -1) {
        this.setData({
          islogin: false
        })
      } else {
        if (res.has_card) {
          // 获取名片数据
          this.get_name_card_fun();
        }
      }
    })
  },
  // 获取名片数据
  get_name_card_fun() {
    var that = this;
    $.ajax({
      url: "/user/card_info",
      method: "GET",
      success: function(res) {
        var data = res.data;
        if (data) {
          data = data.data;
          if (data.mobile_status != 1) {
            data.mobile = data.mobile.replace(data.mobile.substr(3, 5), "*****");
          }
          that.setData({
            name_card_data: data,
          })
          that.setData({
            // 人气
            "nav_data[0].num": data.hot,
            // 点赞
            "nav_data[1].num": data.like,
            // 私信
            "nav_data[2].num": data.chat,
            // 关注
            "nav_data[3].num": data.care,
          })
        } else {
          that.setData({
            name_card_data: null,
          })
        }
      }
    });
  },
  // 打开地图导航
  open_map() {
    var name_card_data = this.data.name_card_data;
    if (name_card_data.longitude - 0) {
      $.open_map(name_card_data.longitude - 0, name_card_data.latitude - 0, name_card_data.address);
    }
  },
  open_fun(e) {
    var index = $.data(e, "index");
    var content_data = this.data.content_data;
    var data = content_data[index];
    var url = data.url;
    if (data.switchTab) {
      wx.switchTab({
        url: url
      })
    } else {
      if (index == 1) {
        this.setData({
          name_card_img: "",
        })
      }
      if (url == "/pages/my/my_shop/my_shop?back=1") {
        if (this.data.back) {
          $.back(this.data.back);
        } else {
          $.open(url);
        }
      } else {
        $.open(url);
      }
    }
  },
  // 点击生成图片分享到朋友圈
  get_name_card_img() {
    var name_card_img = this.data.name_card_img;
    if (name_card_img) {
      //预览
      $.yu_lan(name_card_img, [name_card_img]);
      return false;
    }
    $.show("名片生成中...");
    // 获取名片信息
    var name_card = this.data.name_card_data;
    var scene = name_card.user_id;
    // var page = "pages/index/index";
    var page = "pages/index/name_card_xq/name_card_xq";
    // 下载小程序码
    wx.downloadFile({
      url: "https://www.yifale.com/api/token/qr_code?scene=" + scene + "&page=" + page,
      success: (res) => {
        this.setData({
          xcxm: res.tempFilePath,
        })
        // 获取可使用窗口的宽高
        wx.getSystemInfo({
          success: (res) => {
            this.setData({
              size: {
                w: res.windowWidth,
                h: res.windowHeight
              }
            })
            // 下载名片的头像
            wx.downloadFile({
              url: this.data.name_card_data.avatar,
              success: (res) => {
                this.setData({
                  tou_xiang: res.tempFilePath,
                })
                // 开始绘制
                this.hui_zhi();
              }
            })
          }
        })
      }
    })
  },
  // 开始绘制
  hui_zhi() {
    // 获取可使用窗口的宽高
    var size = this.data.size;
    var width = size.w;
    var height = size.h;

    // 获取名片信息
    var name_card = this.data.name_card_data;
    // 获取画笔
    var ctx = wx.createCanvasContext("name_card");

    // 计算上部区域的高
    var top_height = 230;
    // 绘制上部
    ctx.setFillStyle("#7d8690");
    ctx.fillRect(0, 0, width, top_height);

    ctx.setLineJoin("round");
    ctx.setLineWidth(16);
    ctx.setStrokeStyle("#fff");
    ctx.strokeRect(24, 24, width - 48, top_height - 48);

    ctx.setFillStyle("#fff");
    ctx.setStrokeStyle("#fff");
    ctx.fillRect(24, 24, width - 48, top_height - 48);

    // 绘制头像
    // 先填充
    ctx.fill();
    // 存储画布
    ctx.save();
    // 开始创建一个路径
    ctx.beginPath();
    // 设置裁剪区域
    ctx.arc(width - 66, 60, 25, 0, 2 * Math.PI);
    // 裁剪
    ctx.clip();
    // 绘制头像
    ctx.drawImage(this.data.tou_xiang, width - 91, 35, 50, 50);
    // 读取
    ctx.restore();

    // 姓名
    ctx.setFontSize(24);
    ctx.setFillStyle("#000");
    ctx.setTextBaseline('top');
    ctx.fillText(name_card.username, 40, 40);

    // 部门和职位
    ctx.setFontSize(12);
    ctx.setFillStyle("#bbb");
    var bu_men_width = ctx.measureText(name_card.depart).width;
    ctx.fillText(name_card.depart, 40, 75);
    ctx.fillText(name_card.job, 50 + bu_men_width, 75);

    // 公司
    ctx.setFillStyle("#666");
    ctx.fillText(name_card.company, 40, 110);

    // 地址
    if (name_card.address) {
      ctx.fillText("地址：" + name_card.address, 40, 130);
    }

    // 电话
    ctx.fillText("电话：" + name_card.mobile, 40, 150);

    if (name_card.my_business) {
      ctx.fillText("地址：" + name_card.address, 40, 130);
    }

    // 负责部分
    ctx.setStrokeStyle("#e2e2e2");
    ctx.setLineWidth(1);
    ctx.moveTo(16, top_height - 50);
    ctx.lineTo(width - 16, top_height - 50);
    ctx.stroke();
    ctx.setTextAlign('center');
    ctx.setTextBaseline('bottom');
    ctx.fillText("“负责" + name_card.my_business + "”", width / 2, top_height - 26, width - 100);

    // 开始创建一个路径
    ctx.beginPath();
    // 计算下部的高
    var bottom_height = 130;
    // 绘制下部
    ctx.setFillStyle("#fff");
    ctx.fillRect(0, top_height, width, bottom_height);

    // 提示语
    ctx.setFontSize(18);
    ctx.setFillStyle("#000");
    ctx.setTextBaseline('top');
    ctx.setTextAlign('left');
    ctx.fillText("您好，这是我的名片", 16, top_height + 28);
    ctx.fillText("请惠存", 16, top_height + 50);
    ctx.setFontSize(12);
    ctx.setFillStyle("#999");
    ctx.fillText("长按或扫码进入", 16, top_height + 80);

    // 绘制小程序码
    ctx.drawImage(this.data.xcxm, width - 110, top_height + 25, 80, 80);

    var r = 17;
    // 先填充
    ctx.fill();
    // 存储画布
    ctx.save();
    // 开始创建一个路径
    ctx.beginPath();
    // 设置裁剪区域
    ctx.arc(width - 70, top_height + 65, r, 0, 2 * Math.PI);
    // 裁剪
    ctx.clip();
    ctx.setFillStyle('#fff');
    ctx.fill()
    // 绘制头像
    ctx.drawImage(this.data.tou_xiang, width - 70 - r, top_height + 65 - r, 2 * r, 2 * r);
    // 读取
    ctx.restore();

    // 绘制
    ctx.draw(true, () => {
      //获取临时缓存照片路径，存入data中
      this.canvasToTempImagehaibao();
    });
  },
  //获取临时缓存照片路径，存入data中
  canvasToTempImagehaibao() {
    var that = this;
    wx.canvasToTempFilePath({
      canvasId: 'name_card',
      success: function(res) {
        // 获取图片路径
        var name_card_img = res.tempFilePath;
        // 更新名片路径
        that.setData({
          name_card_img: name_card_img,
        });

        //预览
        $.yu_lan(name_card_img, [name_card_img]);

        $.hide();
      }
    });
  },

  // 自定义函数   结束
  // 生命周期函数--监听页面隐藏
  onHide: function() {

  },
  // 生命周期函数--监听页面卸载
  onUnload: function() {

  },
  // 页面相关事件处理函数--监听用户下拉动作
  onPullDownRefresh: function() {

  },
  // 页面上拉触底事件的处理函数
  onReachBottom: function() {

  },
  // 用户点击右上角分享
  onShareAppMessage: function() {
    // 获取名片信息
    var name_card = this.data.name_card_data;
    return {
      path: "/pages/index/name_card_xq/name_card_xq?id=" + name_card.user_id
    }
  }
})